home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / data / dora102f / doraonln.plp < prev    next >
Text File  |  1993-07-08  |  8KB  |  179 lines

  1. /*    共通処理の定義        */
  2. /*    通信時間記録処理    */
  3. %RECTIME{%dt    @getdt;%time    @linetime;    %hh    time/3600;
  4.     %hh    @case(@nochar(hh),1,{im({0}|hh)},,{im(hh)});
  5.     %mm    (time-time/3600*3600)/60;
  6.     %mm    @case(@nochar(mm),1,{im({0}|mm)},,{im(mm)});
  7.     %ss    time-time/60*60;
  8.     %ss    @case(@nochar(ss),1,{im({0}|ss)},,{im(ss)});
  9.     TELNO := @head(ROAD,{/});
  10.     mkdir2(LOG2|{アクセスdat});    write(LOG2|{アクセスdat\CONNECT.DAT},
  11.         {tel no=}|TELNO|
  12.         {;  logout=}|@getchar(dt,1,10)|{ }|@getchar(dt,17,8)|
  13.         {;  time=}|hh|{h}|mm|{m}|ss|{s;\n});
  14.     };
  15. /*異常切断処理*/
  16. %AbortOff{    [CommentB]
  17.     display(CommentB);SNDMSG({okasi_f.snd});
  18.     display({\n}|NET|{-NETとの通信を強制切断します\n});
  19.     discon;RECTIME;display({\nモデムを直接切断しました\n\n});
  20.     SNDMSG({owata_f.snd});footnote({});stop};
  21. /*切断処理 及び 切断終了表示処理*/
  22.     %end1{wait({15},{display({おかしいな\n})},{ログアウトしますか}            ,{type({Y\n})});
  23.     discon;RECTIME;setcdir(CDIR);#DORAMAIN.PLT};
  24. %LogOff    {%LAST{    case(@filechk(UP2|{\SAIGO}),
  25.     {Yes},{type(@read(UP2|{\SAIGO}));type({\n//\n});delfile(UP2|{\SAIGO})},
  26.     {No},{type({//\n\n})})};
  27.     footnote({終了処理中});type({O\n});
  28.     wait(Wtime2,,{かえっちゃう},{type({Y\n})}
  29.         ,{ログアウト},{type({Y\n})});
  30.     wait(Wtime2,,{------->},{LAST}
  31.     ,{伝言板を表示しますか},{type({N\n});wait(Wtime2,,{60},{LAST})}
  32.     ,{Logoff},{},{Timepass},{});
  33.     wait(Wtime1,{discon},{きれた},{discon},{切断},{discon}
  34.             ,{Disconnected},{discon});
  35.     RECTIME;SNDMSG({owata_f.snd});footnote({});im({No})};
  36. /*    ダウンロード開始と終了の処理    */
  37. /*    LOG DOWN START        */
  38. %DOWNSTART{var DAY1[24];var DAY2[10];mkdir2(LOG2);
  39.     DAY1:=@daylong;DAY2:=@im(@getchar(DAY1,6,2)|@getchar(DAY1,9,2));
  40.     footnote({読み込みを開始します});receive(LOG2|NET|DAY2|{.LOG})};
  41. /*    LOG DOWN STOP        */
  42. %DOWNSTOP{footnote({読み込みを終了しました});setcdir(CDIR)};
  43. /*    「ago」前の年月日を「YYYY/MM/DD」の形式で返す    */
  44. %getday{[ago]
  45.     var today[25];var YEAR[5];var MONTH[5];var DAY[5];
  46.     %plus{[DATA]
  47.         case(@nochar(DATA),{1},{im({0}|DATA)},{2},{im(DATA)}
  48.         )};
  49.     %lastmonth{case(@plus(MONTH),
  50.             {01},{im({31})},{02},{im({31})},{03},{im({28})},
  51.             {04},{im({31})},{05},{im({30})},{06},{im({31})},
  52.             {07},{im({30})},{08},{im({31})},{09},{im({31})},
  53.             {10},{im({30})},{11},{im({31})},{12},{im({30})
  54.         })};
  55.     today:=@daylong;YEAR :=@getchar(today,1,4);
  56.     MONTH:=@getchar(today,6,2);DAY  :=@getchar(today,9,2);
  57.     case(DAY-ago<1,{Yes},{
  58.         loop({    DAY:=DAY+@lastmonth;
  59.             case(@plus(MONTH),{01},{MONTH:=12; YEAR:=YEAR-1}
  60.                      ,    ,{MONTH:=MONTH-1}
  61.             );
  62.             im(DAY-ago<1);
  63.         })});
  64.     DAY:=DAY-ago;
  65.     im(YEAR|{/}|@plus(MONTH)|{/}|@plus(DAY))};
  66. /*    Yes/Noを1/2に変換する    */
  67. %YesNo    {[YN,default];
  68.     case    (YN,{Yes},{im({1})},{No},{im({2})},,{im(default)})};
  69. /*    RTBBSへの通信メニュー    */
  70. %ONLINE    {FREE1:={ 2};LGLOOK:={ 2};BDLIST:={ 2};DLLIST:={ 2};
  71.     loop    ({footnote(NET|{ネットへの通信メニュー});
  72.         %dortbbs@YesNo(DORTBBS,{1});
  73.         %updown    @case(UPDOWN,{first},{im({1})},{last},{im({2})},
  74.                 {No},{im({3})},,{im({2})});
  75.         %maildel@YesNo(MAILDEL,{2});    %mailred@YesNo(MAILRED,{1});
  76.         %jisaR    @YesNo(JISAR,{1});    %who    @YesNo(WHO,{1});
  77.         %free1    FREE1;            %lglook    LGLOOK;
  78.         %mactiv @YesNo(MACTIV,{2});    %bdlist @YesNo(BDLIST,{2});
  79.         %dllist @YesNo(DLLIST,{2});
  80.         %doraend@case(DORAEND,{stopdora},{im({1})},{stopmop},{im({2})},
  81.                 {poweroff},{im({3})},{continue},{im({4})},
  82.                 ,{im({4})});
  83.         %a @plane(
  84.             {r自動通信処理(RTBBSでの処理)/する  /しない\n}|
  85.             {rアップ・ダウンロード実行タイミング    /最初  /最後  /しない\n}|
  86.             {r既読メールの削除           /する  /しない\n}|
  87.             {rメール送信簿の確認         /する  /しない\n}|
  88.             {r全員のプロフィールを見る  /する  /しない\n}|
  89.             {r伝言板を見る          /する  /しない\n}|
  90.             {rアクセスユーザー確認     /する  /しない\n}|
  91.             {r未読ポインタ      /7日前/3日前/1日前/前 回\n}|
  92.             {rログ記録を見る             / する /しない\n}|
  93.             {r月間アクティブ率を見る     / する /しない\n}|
  94.             {rボード一覧を見る           / する /しない\n}|
  95.             {rライブラリ一覧を見る       / する /しない\n}|
  96.             {r自由行動                   / する /しない\n}|
  97.             {r自動通信終了後/DORA終了/MOPT終了/電源切断/DORA継続\n}|
  98.             {s設定変更処理               /RT-BBS設定 / 各種設定\n}|
  99.             {sアップ・ダウンロード指定設定処理  / アップロード  / ダウンロード \n}|
  100.             {s通信を開始する             /  開   始  /  終   了 \n},
  101.             dortbbs,updown,maildel,mailred,2,jisaR,who,4,LGLOOK
  102.             ,mactiv,bdlist,dllist,FREE1,doraend
  103.             );
  104. %dortbbs@head(@getline(a,1,1),{\n});    %updown @head(@getline(a,2,1),{\n});
  105. %maildel@head(@getline(a,3,1),{\n});    %mailred@head(@getline(a,4,1),{\n});
  106. %allpro    @head(@getline(a,5,1),{\n});    %jisaR    @head(@getline(a,6,1),{\n});
  107. %who    @head(@getline(a,7,1),{\n});    %mpoint    @head(@getline(a,8,1),{\n});
  108. LGLOOK:=@head(@getline(a,9,1),{\n});    %mactiv    @head(@getline(a,10,1),{\n});
  109. %bdlist    @head(@getline(a,11,1),{\n});    %dllist    @head(@getline(a,12,1),{\n});
  110. FREE1:=    @head(@getline(a,13,1),{\n});    %doraend@head(@getline(a,14,1),{\n});
  111. %setup    @head(@getline(a,15,1),{\n});    %updnset@head(@getline(a,16,1),{\n});
  112. %ok    @head(@getline(a,17,1),{\n});
  113.         case    (dortbbs,{ 1},{DORTBBS:={Yes}},{ 2},{DORTBBS:={No}},
  114.             ,{DORTBBS:={Yes}});
  115.         case(updown,{ 1},{UPDOWN:={first}},{ 2},{UPDOWN:={last}},
  116.             { 3},{UPDOWN:={No}},,{UPDOWN:={first}});
  117.         case(maildel,{ 1},{MAILDEL:={Yes}},{ 2},{MAILDEL:={No}},
  118.             ,{MAILDEL:={No}});
  119.         case(mailred,{ 1},{MAILRED:={Yes}},{ 2},{MAILRED:={No}},
  120.             ,{MAILRED:={Yes}});
  121.         case(allpro,{ 1},{allPRO:={Yes}},{ 2},{allPRO:={No}},
  122.             ,{allPRO:={No}});
  123.         case    (jisaR,{ 1},{JISAR:={Yes}},{ 2},{JISAR:={No}},
  124.             ,{JISAR:={Yes}});
  125.         case    (who,{ 1},{WHO:={Yes}},{ 2},{WHO:={No}},
  126.             ,{WHO:={Yes}});
  127.         case    (mpoint,{ 1},{mPOINT:=@im(@getchar(@getday(7),3,8))}
  128.             ,{ 2},{mPOINT:=@im(@getchar(@getday(3),3,8))}
  129.             ,{ 3},{mPOINT:=@im(@getchar(@getday(1),3,8))}
  130.             ,{ 4},{mPOINT:={}});
  131.         case    (doraend,{ 1},{DORAEND:={stopdora}}
  132.             ,{ 2},{DORAEND:={stopmop}}
  133.             ,{ 3},{DORAEND:={poweroff}}
  134.             ,{ 4},{DORAEND:={continue}});
  135.         case    (mactiv,{ 1},{MACTIV:={Yes}},{ 2},{MACTIV:={No}},
  136.             ,{MACTIV:={Yes}});
  137.         case    (bdlist,{ 1},{BDLIST:={Yes}},{ 2},{BDLIST:={No}},
  138.             ,{BDLIST:={Yes}});
  139.         case    (dllist,{ 1},{DLLIST:={Yes}},{ 2},{DLLIST:={No}},
  140.             ,{DLLIST:={Yes}});
  141.         case    (ok,{ 1},
  142.              {case(MAILRED={No}&&MAILDEL={No}&&DORTBBS={No}&&
  143.                 UPDOWN={No},{Yes},{LOGIN1},{No},{ONLINE1})},
  144.             { 2},{im({No})},,{
  145.             case(setup,    { 1},{setcdir(CDIR);#DORATGK.PLP},
  146.                     { 2},{setcdir(CDIR);#DORASET.PLP});
  147.             case(updnset,    { 1},{setcdir(CDIR);#DORAUSET.PLP},
  148.                     { 2},{setcdir(CDIR);#DORADSET.PLP});
  149.             case(ok={ 0}&&setup={ 0}&&updnset={ 0},
  150.                 {Yes},{im({No})},{No},{im({Yes})});
  151.             })})};
  152. /*    ログインのみの処理    */
  153. %LOGIN1    {setcdir(CDIR);/*#DORALGIN.PLP;*/RETCD:={Start};
  154.     case(RETCD,{Start},
  155.     {setcdir(CDIR);#DORACHAT.PLP;DOWNSTOP;LogOff;AUTOEND},,{im({Yes})})
  156.     };
  157. /*    アップ/ダウンロード処理    */
  158. %UPDOWN1{case(@filechk(UP2|{_mopres.ctl})||@filechk(UP2|{_mopupld.ctl}),
  159.         {Yes},{setcdir(CDIR);#DORAUPLD.PLP});
  160.     case(@filechk(UP2|{_mopdlib.ctl})||@filechk(UP2|{_mopdnld.ctl}),
  161.         {Yes},{setcdir(CDIR);#DORADNLD.PLP})};
  162. /*    オンライン処理    */
  163. %ONLINE1{setcdir(CDIR);#DORALGIN.PLP;
  164.     case(RETCD,{Start},
  165.         {case(UPDOWN,{first},{UPDOWN1});
  166.         setcdir(CDIR);#DORALOOP.PLP;DOWNSTOP;
  167.         case(UPDOWN,{last},{UPDOWN1});
  168.         case(FREE1={ 1},{Yes},{setcdir(CDIR);#DORACHAT.PLP});
  169.         LogOff;wait(1);DOWNSTOP;
  170.         case(DORAEND,{stopdora},{PLTSTOP},{stopmop},{stopterm},
  171.         {poweroff},{command({poff});im({No})},{continue},{im({No})})},
  172.     ,{im({Yes})});
  173.     };
  174. var    LOGFILE    [12];    /* ログファイル名 */
  175. var    TELNO    [20];    /* 接続電話番号    */
  176. var    RETCD    [6];    /* DORALGINのリターンコード    */
  177. var    upldcntl[64];    /* アップロード制御ファイル名    */
  178. var    dnldcntl[64];    /* ダウンロード制御ファイル名    */
  179. ONLINE;